package at.ac.univie.zsu.aguataplan.service;

import java.util.Date;
import java.util.List;

import at.ac.univie.zsu.aguataplan.domain.Game;
import at.ac.univie.zsu.aguataplan.domain.Team;
import at.ac.univie.zsu.aguataplan.domain.Video;
import at.ac.univie.zsu.aguataplan.exception.DatabaseException;
import at.ac.univie.zsu.aguataplan.exception.LogicException;

/**
 * @author gerry
 * 
 */
public interface GameManager {

	public void cleanGame() throws DatabaseException;

	// --------------

	public Game addGame(String description, Team team1, Team team2, Date calDate, String gameResult)
			throws DatabaseException, LogicException;

	public void deleteGame(long id) throws DatabaseException;

	public List<Game> getGameList() throws DatabaseException;

	public Game mergeGame(Game game) throws DatabaseException;

	// --------------

	public Video addVideo(Game game, String name, String description, String locationPath, double length,
			String videoCodec, String audioCodec) throws DatabaseException;

	public void deleteVideo(long gameId, long videoId) throws DatabaseException;

	public List<Video> getGameVideoList(Game game) throws DatabaseException;

	public Video mergeVideo(Video video) throws DatabaseException;

}
